package sintatico;

import lexico.*;

public class InicioTransicao {

	private int estadoAtual;

	private Integer idTokenAtual;

	public InicioTransicao(int estadoAtual, Integer idTokenAtual) {
		super();
		this.estadoAtual = estadoAtual;
		this.idTokenAtual = idTokenAtual;
	}

	public int getEstadoAtual() {
		return estadoAtual;
	}

	public void setEstadoAtual(int estadoAtual) {
		this.estadoAtual = estadoAtual;
	}

	public Integer getIdTokenAtual() {
		return idTokenAtual;
	}

	public void setIdTokenAtual(Integer idTokenAtual) {
		this.idTokenAtual = idTokenAtual;
	}

	public boolean equals(Object o) {
		if (this == o)
			return true;
		else if (!(o instanceof InicioTransicao)) {
			return false;
		} else {
			InicioTransicao tmp = (InicioTransicao) o;
			if(idTokenAtual == null && tmp.idTokenAtual == null && estadoAtual == tmp.estadoAtual)
				return true;
			else if (estadoAtual == tmp.estadoAtual && idTokenAtual != null
					&& tmp.idTokenAtual != null
					&& idTokenAtual.intValue() == tmp.idTokenAtual.intValue())
				return true;
			else
				return false;
		}
	}

	public int hashCode() {
		if (idTokenAtual != null)
			return idTokenAtual.intValue() + estadoAtual;
		else
			return estadoAtual;
	}

}
